Steps to Build and Run the Docker Image

  1. Download the domain binary files, Cycle Web Distribution as mentioned in the Prerequisites section of this document.
  2. Extract the Cycle web distribution.
  3. Create a directory named externallibs to place the 3rd party application libraries, configuration and property files required.

  4. Copy the downloaded Cycle distribution zip under the externallibs/zip directory.

  5. Ensure that you copy the latest following configuration files from <Cycle distribution zip>/conf directory into the externallibs/conf directory(This step is extremely important):

    • cycle-coherence-cache-config.xml

    • cycle-coherence-config.xml

    • Cycle.properties

    • dataIntake-spring-beans-false.xml

    • dataIntake-spring-beans-true.xml

    • logging.properties

  6. Copy the following files from the <Cycle distribution zip>/libs directory into the externallibs directory:

    • commons-collections4-4.5.0.jar

    • commons-logging-1.3.6.jar

    • jakarta.el-api-6.0.1.jar

    • jakarta.persistence-api-3.2.0.jar

    • eclipselink-4.0.9.jar

    • spring-instrument-6.2.18.jar

    • Download aspectj 1.9.1.jar from https://www.eclipse.org/downloads/download.php?file=/tools/aspectj/aspectj-1.9.1.jar.

    • Open aspectj-1.9.1.jar with an unzipping software and retrieve aspectjrt.jar and aspectjweaver.jar from the lib folder.

    • Copy aspectjrt.jar and aspectjweaver.jar into externallibs sub-directory.

      • Copy the following jars from the Oracle Installation directory (path as mentioned below) to the externallibs folder.

        • . ../Middleware/Oracle_Home/oracle_common/modules/oracle.osdt/osdt_core.jar.

        • .. ../Middleware/Oracle_Home/oracle_common/modules/oracle.osdt/osdt_cert.jar.

    Note: Rename all the jars without version names. This is to avoid version updates in the Docker script.

    Example:

    commons-collections4.jar

    commons-logging.jar

    aspectjrt.jar

    aspectjweaver.jar

    eclipselink.jar

    jakarta.persistence.jar

    osdt_core.jar

    osdt_cert.jar

  7. If the Cycle application is ATP compliant, then copy the required ATP (Autonomous Transaction Processing) database files under the externallibs/shared directory. The folder structure is as follows:

    Cycle Ojdbc folder

    • Under the ojdbc folder, copy all the libs to the ojdbc folder.

      Under the wallet folder

Note: Maintain the externallibs folder and place the required libraries and supported files as discussed in earlier steps. Check the below snippets for your reference.

Under the "conf" folder,

Cycle Docker Conf folder

Note: Place the OIPA build artifacts that are downloaded from the Oracle Software Delivery Cloud in the externallibs/zip directory. Refer the following image.

From the copied location, execute the following command:

docker build format

$docker build -t <Image_Name>:<Image_Tag> --build-arg APP_DOMAIN_NAME="<Domain_Name>" --build-arg CYCLE_PKG="<Cycle Package Name>" --build-arg APP_VERSION="<Build Release Version>"

docker build example

$ docker build -t cycle_wls:12.2.0.0 --build-arg APP_DOMAIN_NAME="cycle_domain" --build-arg CYCLE_PKG="CycleWeb-weblogic-distribution.zip" --build-arg APP_VERSION=12.2.0.0

To start the containerized Cycle Web application, run

docker run format

$ docker run -itd --privileged -v /path/to/the/externallibs:/u01/oracle/externallibs --env-file /path/to/the/cycle_env.dat --name <Container_Name> --hostname <Container_HostName> -p <AdminServer_External_Port>:<AdminServer_Container_Port> -p <MS_External_Port>:<MS_Container_Port> --sysctl net.ipv4.ip_local_port_range="1024 65000" <Image_Name>:<Image_Tag> createServer.sh $DB_TYPE

docker run example

For ORACLE:

docker run -itd --privileged -v /path/to/externallibs:/u01/oracle/externallibs --env-file /home/cycle_env.dat --name cycle_wls --hostname cyclewlsadmin -p 8020:8020 -p 8021:8021 --sysctl net.ipv4.ip_local_port_range="1024 65000" cycle_wls:12.2.0.0 createServer.sh ORACLE

For MSSQL:

docker run -itd --privileged -v /path/to/externallibs:/u01/oracle/externallibs --env-file /home/cycle_env.dat --name cycle_wls --hostname cyclewlsadmin -p 8020:8020 -p 8021:8021 --sysctl net.ipv4.ip_local_port_range="1024 65000" cycle_wls:12.2.0.0 createServer.sh MSSQL

Ensure you define the Database names as following (Case Sensitive)

Oracle Database: ORACLE

SQL Database: MSSQL

Check docker logs:

$ docker logs -f cycle_wls

Note: The "APP_DOMAIN_NAME" build argument from the "docker build ...." command and the "--hostname" flag from the "docker run ..." commands should be the same which you denoted in the cycle_env.dat file.

The following are a few snippets of the Cycle AdminConsole.

Deployments

Admin Server DataSource

DataIntake JMS Server

DataIntake JMS Module

Cycle Web Page

To check the logs, execute:

docker logs format

$ docker logs -f <container name>

Example:

$ docker logs -f cycle_wls

Refer to the cycle_env.dat file for more information regarding these variables.